package com.bdqn.t320.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class BaseDao {
    //单例模式
    //1.一个类只允许有一个实例
    //2.这个实例自行创建
    //3.它必须自己提供对外的访问点

    //懒汉模式
    //1.在类加载的时候不会进行实例化
    //2.在类进行调用的时候才会进行初始化
    //3.节约类加载的资源，但是在使用类的时候它需要进行初始化

    //饿汉模式
    //1.在类进行加载的时候就会直接实例化该类
    //2.类加载的消耗资源，但是在使用类的时候它的速度会比较快

    private static Properties properties = null;
    private static BaseDao baseDao = null;

    public static class SingleHelpler {
        private static final BaseDao BASEDAO = new BaseDao();
    }

    public static BaseDao getInstance() {
        System.out.println("getInstance");
        baseDao = SingleHelpler.BASEDAO;
        return baseDao;
    }

    public String getKey(String key) {
        return properties.getProperty(key);
    }

    private BaseDao() {
        System.out.println("构造方法");
        InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("database.properties");
        properties = new Properties();
        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
